﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CuaHangMayTinh.BusinessLogicLayer;
using CuaHangMayTinh.Utilities;
using DevComponents.DotNetBar.Controls;

namespace CuaHangMayTinh.PresentationLayer
{
    /// <summary>
    /// hiển thị tìm kiếm chi tiết nhân viên
    /// </summary>
    public partial class FormNhanVienTimKiem : Form
    {
        /// <summary>
        /// tables chua thông tin cần tìm kiếm
        /// </summary>
        public DataTable Table { get; set; }

        /// <summary>
        /// kiểu muốn tìm kiếm
        /// </summary>
        enum KieuTimKiem
        {
            Tên,
            Địa_Chỉ,
            Số_Điện_thoại,
            Nghiệp_Vụ
        }

        /// <summary>
        /// phương thức khởi tạo
        /// </summary>
        /// <param name="dt"></param>
        public FormNhanVienTimKiem(DataTable dt)
        {
            InitializeComponent();
            Table = dt;
            dataGridViewX_Select.DataSource = Table;
            if (Table != null && Table.Rows.Count > 0)
                dataGridViewX_Select.Columns["Tình trạng"].Visible = false;
        }

        /// <summary>
        /// load của form
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FormNhanVienTimKiem_Load(object sender, EventArgs e)
        {
            toolStripcbb_kieutim.ComboBox.DataSource = Enum.GetValues(typeof(KieuTimKiem));
        }

        /// <summary>
        /// sự kiện khi thay đổi databsoure của daatagirdview 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridViewX_Select_DataSourceChanged(object sender, EventArgs e)
        {
            DataGridViewX dt = (sender as DataGridViewX);
            if (dt.Columns.Count > 0)
            {
                dt.Columns[0].Visible = false;
            }
        }

        /// <summary>
        /// sự kiện khi thay đổi text của texbox 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripTextBox_serchkey_TextChanged(object sender, EventArgs e)
        {
            string text = (sender as ToolStripTextBox).Text;
            int kieu = (int)Enum.Parse(typeof(KieuTimKiem), toolStripcbb_kieutim.SelectedItem.ToString());
            DataTable dt = new DataTable();
            switch (kieu)
            {
                case 0:
                    ///tìm kiếm theo tên nhân viên
                    dt = DataUtil.TimkiemTheo(Table, "Tên nhân viên", text);
                    break;
                case 1:
                    ///tìm kiếm theo địa chỉ
                    dt = DataUtil.TimkiemTheo(Table, "Địa chỉ", text);
                    break;
                case 2:
                    //tìm kiếm theo số điện thoại
                    dt = DataUtil.TimkiemTheo(Table, "Số điện thoại", text);
                    break;
                case 3:
                    //tìm kiếm thoe nghiệp vụ
                    var tablenv = SubGroupUserManager.ConvertToList(SubGroupUserManager.Find_All());
                    foreach (var name in tablenv.AsEnumerable().Select(x=>x.Name).ToArray())
                    {
                        if (name == text)
                            dt = DataUtil.TimkiemTheo(Table, "Nghiệp vụ", text);
                    }
                    break;
                default:
                    break;
            }
            dataGridViewX_Select.DataSource = dt;
            if(dt!=null&&dt.Rows.Count>0)
                dataGridViewX_Select.Columns["Tình trạng"].Visible = false;
        }
    }
}
